const buildings = {
  '教学楼A': ['教室101', '教室102', '教室103'],
  '教学楼B': ['教室201', '教室202', '教室203'],
  '教学楼C': ['教室301', '教室302', '教室303'],
};
const citys = Object.keys(buildings);
import {courseList,courseArrange} from '../../../api/manage'
Page({
  /**
   * 页面的初始数据
   */
  data: {
   
    showPicker: false,              // 控制选择器显示状态
    showPickercourses:false,
    courses: [                    // 课程选择器的数据
    ],
    coursesItems:[
      { name: '2023年上半学期' },
      { name: '2023年下半学期' },
      { name: '2024年上半学期' },
      { name: '2025年下半学期' },
    ],
    columns: [
      {
        values: citys, // 教学楼列表
        className: 'column1'
      },
      {
        values: buildings[citys[0]], // 默认选中第一个教学楼的教室
        className: 'column2',
        defaultIndex: 0 // 选择第一个教室
      }
    ],

    regionValue: "",   // 课程
    coursesItem:"",   //学期
    startWeek: '',
    endWeek: '',
    buildingValue:'',
    classroomOptions :'',
    building_classroom:'',
    courseTime:'',
    showStartPicker: false,
    showEndPicker: false,
    showBuildingPicker: false, // 控制教学楼选择器显示
    showClassroomPicker: false, // 控制教室选择器显示
    showAddressPicker:false,
    weekList: Array.from({ length: 25 }, (_, i) => `第${i + 1}周`), // 生成周列表
    courseSet:{}
  },
  onInput(event) {
    this.setData({
      currentDate: event.detail
    });
    console.log("currentDate:",this.data.currentDate);
  },
  // 显示选择器
  showPicker() {
    this.setData({
      showPicker: true,
    });
  },
  showPickercourses(){
    this.setData({
      showPickercourses: true,
    });
  },
  // 课程确认选择
  onConfirm(event) {

    const selectedValue = event.detail.value; // 获取选择的索引
    console.log("selectedValue",selectedValue);
    this.setData({
      regionValue: selectedValue.courseName, // 更新选择的课程
      showPicker: false, // 关闭选择器
      courseSet: {     
        ...this.data.courseSet, // 保留原有属性
        courseId: selectedValue.courseId, // 追加courseId
      }
    }); 
    
  },

  // 学期确认选择
  onConfirmcourses(event) {
    const selectedValue = event.detail.value; // 获取选择的索引
    this.setData({
      coursesItem: selectedValue.name, // 更新选择的课程
      showPickercourses: false, // 关闭选择器
      courseSet: {     
        ...this.data.courseSet, // 保留原有属性
        courseItem: selectedValue.name, // 追加courseItem
      }
    }); 
   
  },
  // 取消选择
  onCancel() {
    this.setData({
      showPicker: false, // 关闭选择器
    });
  },
  onCancelcourses() {
    this.setData({
      showPickercourses: false, // 关闭选择器
    });
  },

  showStartWeekPicker() {
    console.log("点击起始周");
    this.setData({ showStartPicker: true });
  },

  showEndWeekPicker() {
    console.log("点击结束周");
    this.setData({ showEndPicker: true });
  },

  onStartWeekConfirm(event) {
    console.log("点击起始周提交");
    const selectedValue = event.detail.value;
    const weekNumber = this.extractWeekNumber(selectedValue); // 提取数字
    console.log("courseBweek:",weekNumber);
    this.setData({
      startWeek: selectedValue,
      showStartPicker: false,
      courseSet: {     
        ...this.data.courseSet, // 保留原有属性
        courseBweek: weekNumber, // 追加courseItem
      }
    });
  
  },

  onEndWeekConfirm(event) {
    console.log("点击结束周提交");
    const selectedValue = event.detail.value;

    const weekNumber = this.extractWeekNumber(selectedValue); // 提取
    console.log("courseEweek:",weekNumber);
    this.setData({
      endWeek: selectedValue,
      showEndPicker: false,
      courseSet: {     
        ...this.data.courseSet, // 保留原有属性
        courseEweek: weekNumber, // 追加courseItem
      }
    });
   

  },

  onStartWeekCancel() {
    this.setData({ showStartPicker: false });
  },

  onEndWeekCancel() {
    this.setData({ showEndPicker: false });
  },
  // 提取周数的函数
  extractWeekNumber(weekString) {
  const match = weekString.match(/\d+/); // 匹配字符串中的数字
  return match ? parseInt(match[0], 10) : null; // 返回数字或 null
},

showPickeraddress(){
  
  this.setData({
    showAddressPicker: true, // 关闭选择器
  });
},
 // 教学楼确认选择
 // 第一列变化事件
 onChange(event) {
  const selectedBuilding = event.detail.value[0]; // 获取选择的教学楼
  const classroomOptions = this.getClassroomOptions(selectedBuilding); // 获取对应的教室
  this.setData({
    buildingValue: selectedBuilding,
    classroomValue: '', // 清空之前选择的教室
    'columns[1].values': classroomOptions, // 更新第二列的教室列表
    'columns[1].defaultIndex': 0 // 重置教室选择为第一个
  });
},
 // 获取教室选项
getClassroomOptions(building) {
  return buildings[building] || []; // 返回对应教学楼的教室
},
onAddressConfirm(event){
  const selectedValues = event.detail.value;
  const selectedBuilding = selectedValues[0]; // 教学楼
  const selectedClassroom = selectedValues[1]; // 教室
  
  this.setData({
    buildingValue: selectedBuilding,
    classroomValue: selectedClassroom,
    building_classroom:selectedBuilding+selectedClassroom,
    courseSet: {     
      ...this.data.courseSet, // 保留原有属性
      courseLocation: selectedBuilding+selectedClassroom, 
    },
    showAddressPicker: false, // 关闭选择器
  });
  
  
 

},
onAddressCancel(){
  this.setData({
    showAddressPicker: false, // 关闭选择器
  });
},
// 处理输入变化
onCourseTimeInput(event) {
  console.log("event.detail:",event.detail);
  this.setData({
    courseTime: event.detail, // 更新 courseTime 的值
    courseSet: {     
      ...this.data.courseSet, // 保留原有属性
      courseTime: event.detail, 
    },
  });
},

async onSubmit(){
  console.log("courseSet:", this.data.courseSet);
  if(this.data.courseSet.courseBweek<=this.data.courseSet.courseEweek ||this.data.courseSet.courseBweek == "" ||this.data.courseSet.courseEweek == "" ){
  if(this.data.courseSet.courseId &&
    this.data.courseSet.courseTime &&
    this.data.courseSet.courseLocation &&
    this.data.courseSet.courseEweek &&
    this.data.courseSet.courseBweek &&
    this.data.courseSet.courseItem){
  let res = await courseArrange(this.data.courseSet.courseId,this.data.courseSet.courseTime,this.data.courseSet.courseLocation,this.data.courseSet.courseEweek,this.data.courseSet.courseBweek,this.data.courseSet.courseItem)
  if (res.code === 200) {
    // 清空数据
    this.setData({
      regionValue: "",   // 课程
      coursesItem:"",   //学期
      startWeek: '',
      endWeek: '',
      buildingValue:'',
      classroomOptions :'',
      building_classroom:'',
      courseTime:'',
      courseSet:{}
    });
    // 弹出提示框
    wx.showToast({
        title: '提交成功', // 提示内容
        icon: 'success',   // 图标类型
        duration: 2000     // 显示时长
    });
  
} else {
    // 处理上传失败的情况
    wx.showToast({
        title: '提交失败',
        icon: 'none',
        duration: 2000
    });
}}else{
  wx.showToast({
    title: '请填写所有信息',
    icon: 'none',
    duration: 2000
});
}
}
else{
  wx.showToast({
    title: '格式错误，请重新填写',
    icon: 'none',
    duration: 2000
});
  this.setData({
    startWeek: '',
    endWeek: '',
    // "courseSet.courseEweek": "",
    // "courseSet.courseBweek": ""
  })
}
},
  /**
   * 生命周期函数--监听页面加载
   */
 async onLoad(options) {
  let re = await courseList();
  // 提取 courseId 和 courseName
  let simplifiedCourseList = re.data.map(course => ({
    courseId: course.courseId,
    courseName: course.courseName
  }));
  console.log(simplifiedCourseList); 
  this.setData({
    courses:simplifiedCourseList
  })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})